home *** CD-ROM | disk | FTP | other *** search
/ TeX 1995 July / TeX CD-ROM July 1995 (Disc 1)(Walnut Creek)(1995).ISO / macros / latex209 / contrib / feynman / loops.tex < prev    next >
Text File  |  1992-07-02  |  2KB  |  59 lines

  1. %                           LOOPS(1).TEX
  2. % DRAWS LOOPS FOR FEYNMAN(32+).TEX:  GLUON LOOPS ONLY
  3. \global\newcount\loopfrontx    \global\newcount\loopfronty
  4. \global\newcount\loopbackx    \global\newcount\loopbacky
  5. \global\newcount\loopmidx    \global\newcount\loopmidy
  6. \global\newdimen\CENTRALLOOP
  7. \gdef\drawloop#1[#2#3](#4,#5){
  8. \global\CENTRALLOOP=0pt  % non-central is default
  9. \global\LINETYPE=#1  
  10. \ifnum\LTYPE=\gluon\relax\else\UNIMPERROR\LTYPE=1\message{Reverting to Gluons}
  11. \fi
  12. \global\LINEDIRECTION=#2  %initial loop direction
  13. \global\fourthlineadjx=#3 %number of eighths of loop
  14. \ifnum\fourthlineadjx=0 % (x,y) now midpoint.
  15.   \global\CENTRALLOOP=1pt  % non-central is default
  16.   \global\fourthlineadjx=8
  17.   \global\LDIR=0
  18. \fi   
  19. \global\fourthlineadjy=\fourthlineadjx  % a conveniently unused variable.
  20. \global\advance\fourthlineadjy by -4
  21. \global\loopfrontx=#4   \global\loopfronty=#5
  22. \ifdim\CENTRALLOOP=1pt
  23.   \global\advance\loopfrontx by -2413  \global\advance\loopfronty by -425
  24. \fi                          % diameter of gluonloop is 4825 to 4830 cpt.
  25. \global\unitboxnumber=1  % default; \gluoncase
  26. \ifnum\LINETYPE=\photon \unitboxnumber=2 \fi
  27. \checkdir
  28. \drawline\LINETYPE[\LDIR\LCONFIG](\loopfrontx,\loopfronty)[\unitboxnumber]
  29. \DRAWLOOP
  30. \ifnum\fourthlineadjy>-1 % at least 1/2 a loop
  31. \global\loopmidx=\loopfrontx   \global\loopmidy=\loopfronty
  32. \global\advance\loopmidx by \loopbackx  \global\advance\loopmidy by \loopbacky
  33. \divide\loopmidx  by 2 \divide\loopmidy by 2  % midpoints of loop
  34. \ifdim\CENTRALLOOP=1pt
  35.   \global\advance\loopfrontx by 200    \global\advance\loopfronty by 425
  36.   \global\advance\loopbackx by -200    \global\advance\loopbacky by -425
  37. \fi
  38. \fi % end of \ifnum\fourthlineadjy>-1 
  39. }
  40. \gdef\DRAWLOOP{
  41. \global\advance\fourthlineadjx by -1
  42. \ifnum\fourthlineadjx=0\relax  % finished!
  43. \else
  44. \ifnum\fourthlineadjx=\fourthlineadjy % opposite side of loop
  45.    \global\loopbackx=\pbackx   \global\loopbacky=\pbacky
  46. \fi
  47. \global\advance\LDIR by 1
  48. \moduloeight\LDIR
  49. \checkdir
  50. \drawline\LINETYPE[\LDIR\LCONFIG](\pbackx,\pbacky)[\unitboxnumber]
  51. \fi % end \ifnum\fourthlineadjx
  52. \ifnum\fourthlineadjx>1 \DRAWLOOP  \fi  % recursive
  53. }
  54. \gdef\checkdir{
  55. \ifnum\LTYPE=\gluon
  56. \ifodd\LDIR \global\LCONFIG=0 \else \global\LCONFIG=2 \fi
  57. \fi %end of \gluon
  58. }
  59.